home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / docs / fdimg / fdimg.doc
Text File  |  2000-05-08  |  6KB  |  213 lines

  1.  
  2.     フロッピーディスクイメージファイルの基礎と応用
  3.  
  4.         →余談をいっぱい散りばめて
  5.  
  6.                         編集部:舩本昇竜
  7.  
  8. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  9.  
  10.  
  11.  EX68で扱われる2HDディスクイメージファイルは、文字通り、2HDフロッピーデ
  12.  
  13. ィスクの内容をまるごと抜き取り、1つのファイルにしたものです。
  14.  
  15.  と、論理的な説明はこれで十分なのですが、せっかくの機会なので、もう少し
  16.  
  17. フロッピーについての低レベル(ハードウェアより)な点をおさえましょう。な
  18.  
  19. お、ここでいうFDとは、特にことわりのない限り、X680x0で使用される5インチ
  20.  
  21. 2HD(1.2MB)を指します。
  22.  
  23.  
  24.  
  25. ○解析屋用語と実際用語の微妙な違い
  26.  
  27.  まず、素朴な疑問の回答にもなる事実ですが、FDは、表裏、2つのヘッド(読
  28.  
  29. 書装置)を持ち、両面記録を行います。また、両面とも、「トラック」という単
  30.  
  31. 位で77等分されています。つまり、1つのFDには「154のトラック」が存在
  32.  
  33. することになります。
  34.  
  35.    →特殊な方法で、FDに155以上のトラックを作り、それをチェックする
  36.     「オーバートラック」というプロテクトが存在します(しました?)。
  37.  
  38.  ここで少し問題となるのが、このトラックの考え方といいますか、数え方。FD
  39.  
  40. のトラックは、
  41.  
  42.     片面77のトラックが2面ある:77×2
  43.  
  44. のではなく、
  45.  
  46.     両面(サイド0+サイド1)に77トラックがある:2×77
  47.  
  48. となります(ちなみに「サイド0」はディスクの表をあらわし、「サイド1」は
  49.  
  50. ディスクの裏をあらわします)。
  51.  
  52.  そもそも、FDのヘッドは表と裏の2つありますが、ヘッドを動かす軸は1つし
  53.  
  54. かありません(ですから、サイド0/サイド1という考えでアクセスを行うのは
  55.  
  56. 「損」なのです)。実際、FDを先頭から順番にアクセスするようプログラムを組
  57.  
  58. むと、
  59.  
  60.     サイド0のトラック0            (0)
  61.     サイド1のトラック0            (1)
  62.     サイド0のトラック1            (2)
  63.     サイド1のトラック1            (3)
  64.         :                :
  65.         :                :
  66.     サイド0のトラック76            (152)
  67.     サイド1のトラック76            (153)
  68.  
  69. という順番でアクセスされます。この時、アクセス順に番号をふると、それぞれ
  70.  
  71. のトラックには0から153の番号が付きます(便宜上、私はこの番号を「解析
  72.  
  73. 屋用トラック」と呼んだりもしています。以後もことわりのない限りこちらを使
  74.  
  75. 用します)。経験的に、普段(?)、この0~153という番号を良く使います
  76.  
  77. が、プログラミングの際には、どうしても「サイド」に関するパラメータが必要
  78.  
  79. となります。ですから、両者の関係はキチンと押さえておきましょう。
  80.  
  81.  
  82.  
  83.  
  84. ○さらにこまかく
  85.  
  86.  結局のトコロ、2HDイメージファイルといわれる「まるまる読み込まれたFDの
  87.  
  88. 内容」とは、FDのトラック0からトラック153まで、順番に読み込まれた内容
  89.  
  90. を指します。
  91.  
  92.  さて、これらトラックは、さらに小さな「セクタ」と単位に分解することがで
  93.  
  94. きます(実際には、さらに細かく分類することも出来ますが、基本的に、分解出
  95.  
  96. 来きる最小単位が「セクタ」と考えていいでしょう)。
  97.  
  98.    →他に分解されるデータとして、ギャップ(GAP)、アドレスマーク(IDAM)
  99.     やCRCなどがあります。
  100.     カタめのFDのコピープロテクトの多くは、「読み込めても書き込めない」
  101.     これらの情報を特殊な装置で書き込むことで実現されていました。
  102.  
  103.  具体的には、トラックは、8つのセクタに分解されます。つまり、FDは、12
  104.  
  105. 32(=154×8)のセクタで構成されています(トラックと同様に、セクタ番号0~
  106.  
  107. 1231であらわすコトもあります)。また、1つのセクタは1024バイトで構成
  108.  
  109. されているので、FDの容量は約1.2Mバイト(1261568バイト=1024×1232)となりま
  110.  
  111. す。
  112.  
  113.    →例えば、DRIVE.XでFDを調べた時、
  114.         A: 2HD(1MB)    ユニット番号・・・・    0
  115.         1セクタあたりのバイト数・・・・・・・・・・・・・・・・ 1024
  116.     と表示されます。
  117.  
  118.  
  119.  
  120.  
  121. ○お互いの都合
  122.  
  123.  疑問に思う人もいるとは思います。「なぜ、トラック>セクタと階層構造をと
  124.  
  125. らなくてはならないのか?」。これは、「FD(ハードウェア)にとって都合のよ
  126.  
  127. い分割方法がトラック」「ユーザー(ソフトウェア)にとって都合のよいサイズ
  128.  
  129. がセクタ」であり、両者の利害の差が出たと考えると納得出来るでしょう。
  130.  
  131.  例えば、ハードウェアの都合でトラックは154必要ですが、セクタに関して
  132.  
  133. は、1セクタサイズを小さくしてセクタ数を増やすことも出来ます。
  134.  
  135.    →ちょっとウソっぽいですが、普通はこのような認識で十分です。
  136.  
  137.    →この例もやりすぎるとプロテクトになり、なかには、1トラックに24
  138.     セクタ!なんてものもありました。
  139.  
  140.  
  141.  
  142.  
  143. ○ FDIMG.Xの使い方
  144.  
  145.  実際に2HDディスクイメージファイルを生成するプログラムの1つに、FDIMG.X
  146.  
  147. があります(「電脳倶楽部」の名の付く全てのCD-ROMに掲載されています)。
  148.  
  149.  元々、「すてきな電脳倶楽部」の起動ディスク用を作成するために用意したプ
  150.  
  151. ログラムのため、かなり限定した仕様となっております。ご了承おば。
  152.  
  153.     @>FDIMG
  154.      カレントにある、2HDイメージファイル「FDIMG.BIN」を読み込み、ド
  155.     ライブ0に挿入されているFDに書き出します。
  156.      (大抵の場合、FDIMG.BINの中身は電脳倶楽部の起動ディスク)
  157.  
  158.     ----------------------------------------------------------------
  159.  
  160.     @>FDIMG -r [filename.2HD]
  161.      ドライブ0に挿入されているFDを読み込み、2HDイメージファイル
  162.     「filename.2HD」を生成します。filename.2HD省略時は、「fdimg.bin」
  163.     となります。必ず、HD上で実行してください。
  164.  
  165.     @>FDIMG filename.2HD
  166.      2HDイメージファイル「filename.2HD」を読み込み、ドライブ0に挿
  167.     入されているFDに書き出します。
  168.  
  169.  
  170.  
  171.  
  172. ○最後に雑談
  173.  
  174.  さて、みなさん。FDは、どうやってデジタルデータを記録しているかご存じで
  175.  
  176. すか? X680x0のFDの場合、MFMという記録方法を採用しているのですが、実は、
  177.  
  178. 後ろの2文字の"FM"は、あのFMラジオと同じFMの意味があります。つまり、FDの
  179.  
  180. 円盤に記録されている「本当のデータ」は、実はアナログなのです。???ちょ
  181.  
  182. っとこんがらがってきましたね。
  183.  
  184.  その仕掛を大雑把に解説すると、全然違う「0を表すアナログ波形」「1を表
  185.  
  186. すアナログ波形」の2種類が用意され、書き込み時は、入力されたビット列に従
  187.  
  188. い、それぞれの波形をアナログで記録します。また、読み込み時は、その記録さ
  189.  
  190. れたアナログ信号を読み取り、「どちらの波形に近いか」を判断し、0か1を出
  191.  
  192. 力します。
  193.  
  194.  ポイントは、両者の波形は「全然違う」というトコロにあり、あくまでも「0
  195.  
  196. か1のどちらの波形に近いか」を判断するので、記録されたアナログデータが多
  197.  
  198. 少変形劣化した程度であれば、問題なく0か1を判定することが出来るのです。
  199.  
  200.    →FD用スマートメディアアダプタという製品がありますが、まさにあのア
  201.     ダプタは、メディア内のデジタルデータを、MFM形式で読み取ることの
  202.     出来るアナログデータに変換する装置です。FDドライブはそのアダプタ
  203.     が出力したアナログデータを読み込み、0/1を判定し、デジタルデー
  204.     タを出力します。つまり、デジタルメディアに納められたデジタルデー
  205.     タを読み込む為に、アナログ操作を2回行っているのです。
  206.  
  207.  
  208.  
  209.  
  210. (EOF)
  211.  
  212.  
  213.